return cssnode->next_sibling;
}
-static void
+static gboolean
gtk_css_node_set_style (GtkCssNode *cssnode,
GtkCssStyle *style)
{
if (cssnode->style == style)
- return;
+ return FALSE;
if (style)
g_object_ref (style);
g_object_unref (cssnode->style);
cssnode->style = style;
+
+ return TRUE;
}
static void
gint64 current_time)
{
GtkCssStyle *new_style;
+ gboolean style_changed;
if (!gtk_css_node_needs_new_style (cssnode))
return;
current_time,
cssnode->style);
- gtk_css_node_propagate_pending_changes (cssnode, new_style != NULL);
+ style_changed = gtk_css_node_set_style (cssnode, new_style);
+ g_object_unref (new_style);
- if (new_style)
- {
- gtk_css_node_set_style (cssnode, new_style);
- g_object_unref (new_style);
- cssnode->pending_changes = 0;
- }
-
+ gtk_css_node_propagate_pending_changes (cssnode, style_changed);
+
+ cssnode->pending_changes = 0;
cssnode->style_is_invalid = FALSE;
}